/**
 * <p>版权所有：中企动力
 * <p>未经本公司许可，不得以任何方式复制或使用本程序任何部分
 */
package com.ce.pms.house.service.impl;

import com.ce.pms.charge.dao.IAccountDao;
import com.ce.pms.base.service.impl.PmsBaseServiceImpl;
import com.ce.pms.charge.dao.ITransactionDao;
import com.ce.pms.customer.dao.IClientRHouseDao;
import com.ce.pms.customer.dao.IProRightDao;
import com.ce.pms.house.dao.IBuildingDao;
import com.ce.pms.house.dao.IChargePrecinctDao;
import com.ce.pms.house.dao.ICoalitionHouseDao;
import com.ce.pms.house.dao.IFlatDao;
import com.ce.pms.house.dao.IHouseDao;
import com.ce.pms.house.dao.IMeterDao;
import com.ce.pms.house.service.IImageService;
import com.ce.pms.house.service.IProductService;

/**
 * 功能描述: ProductServiceImpl
 *
 * @author  付湘辉
 * Created on：  2008-7-1
 * @author
 * update on：
 */

public class ProductServiceImpl extends PmsBaseServiceImpl implements
		IProductService {

    /**
     * 楼栋Dao
     */
    protected IBuildingDao buildingDao;
    
    /**
     * 产权Dao
     */
    protected IProRightDao	 proRightDao;
    
    /**
     * 账户Dao
     */
    protected IAccountDao accountDao;
    
    /**
     * 交易Dao
     */
    protected ITransactionDao transactionDao;

    /**
     * 管理区Dao
     */
    protected IChargePrecinctDao chargePrecinctDao;

    /**
     * 客户房屋关系Dao
     */
    protected IClientRHouseDao clientRHouseDao;

    /**
     * 管理房Dao
     */
    protected ICoalitionHouseDao coalitionHouseDao;

    /**
     * 住宅房（房屋）Dao
     */
    protected IFlatDao flatDao;

	/**
     * 房屋Dao
     */
    protected IHouseDao houseDao;

    /**
	 * 图片服务
	 */
	protected IImageService imageService;

    /**
     * 走表Dao
     */
    protected IMeterDao meterDao;

    /**
     * 走表数据录入
     */
//    protected IMeterDataRegisterService meterDataRegisterService;

	/**
     * 功能描述: 设置buildingDao
     *
     * @author 付湘辉
     * Created on:2008-7-1
     *
     * 修改原因：
     * @param buildingDao the buildingDao to set
     */
    public void setBuildingDao(IBuildingDao buildingDao) {
        this.buildingDao = buildingDao;
    }

   /**
 * @param chargePrecinctDao the chargePrecinctDao to set
 */
public void setChargePrecinctDao(IChargePrecinctDao chargePrecinctDao) {
	this.chargePrecinctDao = chargePrecinctDao;
}


    /**
	    *
	    * 功能描述:   <br>
	    *
	    * @param clientRHouseDao
	    *
	    * Create author：付湘辉  <br>
	    * Create on:2008-7-25  <br>
	    * Edit author：  <br>
	    * Edit on:    <br>
	    * Why:     <br>
	    */
	    public void setClientRHouseDao(IClientRHouseDao clientRHouseDao) {
	        this.clientRHouseDao = clientRHouseDao;
	    }

    /**
     * 功能描述: 设置coalitionHouseDao
     *
     * @author 付湘辉
     * Created on:2008-7-1
     *
     * 修改原因：
     * @param coalitionHouseDao the coalitionHouseDao to set
     */
    public void setCoalitionHouseDao(ICoalitionHouseDao coalitionHouseDao) {
        this.coalitionHouseDao = coalitionHouseDao;
    }

    /**
     * 功能描述: 设置住宅房（房屋）Dao
     *
     * @author 付湘辉
     * Created on:2008-7-4
     *
     * 修改原因：
     * @param flatDao the 住宅房（房屋）Dao to set
     */
    public void setFlatDao(IFlatDao flatDao) {
        this.flatDao = flatDao;
    }

    /**
     *
     * 功能描述: 设置houseDao
     *
     * @author 付湘辉
     * Created on:2008-7-1
     *
     * 修改原因：
     * @param houseDao
     * @return void 返回结果
     */
    public void setHouseDao(IHouseDao houseDao) {
        this.houseDao = houseDao;
    }

	/**
	 * 功能描述: 设置图片服务
	 *
	 * @author 付湘辉
	 * Created on:2008-7-1
	 *
	 * 修改原因：
	 * @param imageService the 图片服务 to set
	 */
	public void setImageService(IImageService imageService) {
		this.imageService = imageService;
	}

	/**
     * @param meterDao the meterDao to set
     */
    public void setMeterDao(IMeterDao meterDao) {
        this.meterDao = meterDao;
    }


	public void setProRightDao(IProRightDao proRightDao) {
		this.proRightDao = proRightDao;
	}

	public void setAccountDao(IAccountDao accountDao) {
		this.accountDao = accountDao;
	}

	public void setTransactionDao(ITransactionDao transactionDao) {
		this.transactionDao = transactionDao;
	}


	/**
	 * @param meterDataRegisterService the meterDataRegisterService to set
	 */
//	public void setMeterDataRegisterService(
//			IMeterDataRegisterService meterDataRegisterService) {
//		this.meterDataRegisterService = meterDataRegisterService;
//	}

	/** 功能描述: 得到一个可能的图片Domain <br>
	 * @param imageVo
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-5  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	*/
//	protected ImageDomain getPossibleImageDomain(ImageVO imageVo) {
//		ImageDomain imageDo = null;
//		if (!BlankUtil.isBlank(imageVo)) {
//			imageVo = this.processImage(imageVo);
//			if (!BlankUtil.isBlank(imageVo.getId())) {
//				imageDo = new ImageDomain();
//				imageDo.setKeyword(imageVo.getId());
//			}
//		}
//		return imageDo;
//	}

	/** 功能描述: 得到一个可能的图片Domain <br>
	 * @param imageVo
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-5  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	*/
//	protected ImageDomain getPossibleImageDomain(ImageVO imageVo,Long operator) {
//		if (!BlankUtil.isBlank(imageVo)) {
//			this.checkCreatorInfo(operator);
//			imageVo.setCreator(operator);
//			return this.getPossibleImageDomain(imageVo);
//		}
//		return null;
//	}

	/**
	 * 功能描述:  <br>
	 * @param imageVos
	 * @param operator
	 * @return Set<ImageDomain>
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-5  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
//	protected Set<ImageDomain> processImageSet(Set<ImageVO> imageVos,Long operator){
//		Set<ImageDomain> ichnographyDos =  new HashSet<ImageDomain>();
//		if (!BlankUtil.isBlank(imageVos)) {
//			for (ImageVO imageVO : imageVos) {
//				ichnographyDos.add(this.getPossibleImageDomain(imageVO,operator));
//			}
//			ichnographyDos.remove(null);
//		}
//
//		return ichnographyDos;
//	}

	/**
	 * 功能描述:  根据传入的参数值对图片进行操作，规则如下： <br>
	 * <ul>
	 * <li>如果imageVo为空，直接返回。
	 * <li>如果imageVo的名称和路径值不为空值，但没有id，则进行新增操作
	 * <li>如果imageVo的名称和路径值不为空值，但有id，则进行修改操作
	 * <li>如果imageVo只有id，进行删除操作（包括删除图片文件和数据库表记录）
	 * </ul>
	 *
	 * @param imageVo
	 * @return ImageVO
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-7-15  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
//	private ImageVO processImage(ImageVO imageVo){
//		if (BlankUtil.isBlank(imageVo)) {
//			return null;
//		}
//		ImageVO resultImage = imageVo;
//		if (!BlankUtil.isBlank(resultImage.getName())
//			&& !BlankUtil.isBlank(resultImage.getPath())) {
//			Long imageId = resultImage.getId();
//			if (!BlankUtil.isBlank(imageId)) {//修改操作
//				ImageVO tempImage = this.imageService.findImageByID(imageId);
//				//图片名称不一样，进行修改
//				if (!resultImage.getName().equals(tempImage.getName())) {
//					UpLoadFile.deleteFile(tempImage.getPath(), tempImage.getName());
//					this.imageService.editImage(resultImage);
//				}
//			}else{
//				//添加图片
//				imageId = this.imageService.addImage(resultImage);
//
//				//得到新增的图片id
//				resultImage.setId(imageId);
//			}
//		}else if(!BlankUtil.isBlank(resultImage.getId())){//只传id，删除文件
//			ImageVO tempImageVo = this.imageService.findImageByID(resultImage.getId());
//			this.imageService.deleteImageByID(tempImageVo.getId());//从数据库删除图片
//			UpLoadFile.deleteFile(tempImageVo.getPath(), tempImageVo.getName());
//			resultImage.setId(null);
//		}
//		return resultImage;
//	}
}
